// import { http } from '@/appBase/request';
// import { toData } from '@/appBase/utils';
// import { IM, IMEventKey, IMMsgCategoryEnum, IMSessionTypeEnum, MsgTypeEnum } from 'zs-base';
// import config from '@/config/index';
// // import { getNowUserInfo } from '@/api/common/user';
// import { Message, notification,Modal } from 'ant-design-vue';
// import { logout } from './base';
// /**
//  * im 服务初始化
//  * @param {Router} router
//  */
// export function imInit(router, store) {
//     let app = window || getApp();
//     // const customerInfo = getNowUserInfo().sysCustomer;
//     // // 当前 IM 仅支持客服角色收发消息，新增其他支持角色请调整逻辑
//     // if (!customerInfo) return;
//     const Notification = window.Notification || window.mozNotification || window.webkitNotification;
//     if (Notification) {
//         Notification.requestPermission();
//     } else {
//         console.warn('当前游览器不支持通知Notification');
//     }
//     if (!app.im) {
//         const im = new IM({
//             platformType: 6,
//             appkey: config.imAppkey,
//             httpFunc: (opts) => http(opts).then((result) => toData(result)),
//             showLoading: (str) => Message.loading(str, 0),
//             hideLoading: (hide) => hide(),
//             showLayer: (str) => notification.warning({
//                 message: '提示',
//                 description: str
//             })
//         })
//         im.connect().then(() => {
//             console.log('IM链接成功');
//         }).catch(error => {
//             console.log('链接失败: ', error.code, error.msg);

//             notification.error({
//                 message: '错误',
//                 description: `网络或者服务器异常！请重新登录再试`,
//                 btn: h => (<a-button type='primary' size='small' onClick={() => logout(null, true)}>重新登录</a-button>),
//                 duration: 3
//             });
//         })

//         im.on(IMEventKey.MSG, (data) => {
//             console.log(data)
//             const { header, body, messageUId, msgCategory } = data;
//             // 无内容则不展示
//             if (!body.content) return;
//             // 处理信令消息
//             if (msgCategory == IMMsgCategoryEnum.SIGNAL_MSG) {
//                 if (header.type == 3) {
//                     // 收到新消息
//                     showSysNotification({
//                         title:'新消息',
//                         body: body.content,
//                         id: messageUId
//                     });
//                 }
//             }

//             // 处理聊天消息
//             if (msgCategory != IMMsgCategoryEnum.CHAT_MSG) return;
            
//             if ([MsgTypeEnum.TextMsg, MsgTypeEnum.ImgMsg, MsgTypeEnum.FileMsg, MsgTypeEnum.AudioMsg, MsgTypeEnum.VedioMsg, MsgTypeEnum.NewSession].indexOf(parseInt(header.msgType)) < 0) return;
//             const notifyData = {
//                 title: '新消息',
//                 body: '',
//                 id: messageUId,
//                 icon: header.sendHead
//             };
//             if (header.sessionType == IMSessionTypeEnum.INQUIRY) {
//                 notifyData.title = '托管对话';
//             } else if (header.sessionType == IMSessionTypeEnum.RETURN_VISIT) {
//                 notifyData.title = '患者回访';
//             } else if (header.sessionType == IMSessionTypeEnum.FREE_CLINIC) {
//                 notifyData.title = '平台对话';
//             } else if (header.sessionType == IMSessionTypeEnum.CONTACT_CUSTOMER_SERVICE) {
//                 notifyData.title = '咨询对话';
//             } else if (header.sessionType == IMSessionTypeEnum.TECHNICAL_CONSULTING) {
//                 notifyData.title = '六方管理咨询';
//             } else if (header.sessionType == IMSessionTypeEnum.QUICK_VISIT) {
//                 notifyData.title = '奥诊极速问诊';
//             }
//             notifyData.body = body.content;
//             showSysNotification(notifyData);
//         });
//         im.on(IMEventKey.STATUS, (status) => {
//             if (status==6) {
//                 Modal.confirm({
//                     title: '提示',
//                     content: '当前用户已在其他地方登录，实时聊天消息将无法收到，是否立即重登？' ,
//                     onOk: () => {
//                       return logout().then((result) => {});
//                     },
//                     onCancel () {}
//                 })
//             }
//         });
//         app.im = im;
//     } else {
//         app.im.disconnect().then(function () {
//             console.log('链接已存在，断开链接尝试重连');
//             app.im.connect().then(() => {
//                 console.log('IM链接重连成功');
//             });
//         });

//     }
// }

// /**
//  * 获取 全局IM 实例
//  * @return {IM} im实例
//  */
// export function getIM() {
//     let app = window || getApp();
//     return app.im;
// }

// /**
//  * 播放提醒声音
//  */
// function playRemindVoice() {
//     var audio = new Audio();
//     audio.loop = false;
//     audio.id = 'myAudio3';
//     audio.autoplay = true;
//     audio.addEventListener('canplay', () => {
//         audio.play();
//     }, false);
//     audio.src = 'https://cdn.cqzhongshen.cn/wechat/newMsgSound.mp3';
// }

// /**
//  * 检测是否是支持的消息内容
//  * @param {MsgTypeEnum} msgType 消息类型
//  */
// export function isSupportedMsg(msgType) {
//     msgType = parseInt(msgType);
//     if ([
//         MsgTypeEnum.ImgMsg,
//         MsgTypeEnum.TextMsg,
//         MsgTypeEnum.AudioMsg,
//         MsgTypeEnum.AddInquiryMsg,
//         MsgTypeEnum.SysMsg,
//         MsgTypeEnum.MakeRecordMsg,
//         MsgTypeEnum.MedicalRecordMsg,
//         MsgTypeEnum.PrescriptionMsg,
//         MsgTypeEnum.PrescriptionStatusMsg,
//         MsgTypeEnum.TreatPlanMsg
//     ].includes(msgType)) {
//         return true;
//     }
//     return false;
// }

// /**
//  * 显示系统消息
//  * @param {Object} params
//  * @param {String} params.title
//  * @param {String} params.body
//  * @param {String} params.icon
//  * @param {String} params.id
//  */
// function showSysNotification(params) {
//     const Notification = window.Notification || window.mozNotification || window.webkitNotification;
//     if (!Notification) return;
//     if (Notification.permission != "granted") return;
//     var notification = new Notification(params.title, {
//         body: params.body,
//         icon: params.icon,
//         tag: params.id
//     });
//     notification.onshow = () => playRemindVoice();
//     notification.onclick = () => {
//         router.push({ path: '/workbench' })
//     };
// }